package com.example.dishchickenimageloader;

import android.graphics.Bitmap;
import java.util.LinkedHashMap;


public class MemoryCache {

    private final LinkedHashMap<String, Bitmap> cacheMap;

    public MemoryCache(int cacheSize) {
        cacheMap = new LinkedHashMap<String,Bitmap>(16, 0.75F, true) {
            @Override
            protected boolean removeEldestEntry(Entry<String, Bitmap> eldest) {
                //如果已经存的数量 是 可以存的数量 +1 ，就从内存缓存中移除最早加入的，加入文件缓存
                if(cacheSize + 1 == cacheMap.size()){
                    Bitmap eldestValue = eldest.getValue();
                    String key = eldest.getKey();
                    FileCache.save(key,eldestValue);
                    return true;
                }else {
                    return false;
                }
            }
        };
    }


    public void put(String key, Bitmap value){
        cacheMap.put(key, value);
    }

    public Bitmap get(String key){
        return cacheMap.get(key);
    }


}
